//在区间范围内统计奇数数目
/*给你两个非负整数 low 和 high 。请你返回 low 和 high 之间（包括二者）奇数的数目。
0 <= low <= high <= 10^9*/
class Solution {
public:
    int countOdds(int low, int high) {
        /* int count = 0;
         if (low % 2 == 0)
             low++;
         for (int i = low; i <= high; i += 2) {
             if (low % 2)
                 count++;
         }
         return count;
         */
        if (low % 2)
            low--;
        if (high % 2)
            high++;
        return (high - low) / 2;
    }
};


// 数组元素积的符号
/*已知函数 signFunc(x) 将会根据 x 的正负返回特定值：

如果 x 是正数，返回 1 。
如果 x 是负数，返回 -1 。
如果 x 是等于 0 ，返回 0 。
给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。

返回 signFunc(product) 。
1 <= nums.length <= 1000
-100 <= nums[i] <= 100
*/
class Solution {
public:
    int arraySign(vector<int>& nums) {
        int nag_count = 0;
        for (auto& i : nums) {
            if (i < 0)
                nag_count++;
            else if (i == 0)
                return 0;
        }
        if(nag_count%2)
        return -1;
        else
        return 1;
    }
};
